home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Hottest 6
/
Hottest 6 (1996)(PDSoft)[!].iso
/
software
/
programming
/
c
/
buttonclass
/
test.c
< prev
Wrap
C/C++ Source or Header
|
1978-11-24
|
5KB
|
205 lines
#include "headers.h"
#include "buttonclass.h"
struct Library *IntuitionBase, *UtilityBase, *GfxBase, *DOSBase;
extern struct Library *SysBase;
struct Window *w;
Class *buttonCl;
struct Gadget *but;
struct IntuiMessage *msg;
struct Gadget *glist=NULL;
struct DrawInfo *drinfo;
UWORD chip arrowData[] =
{
/* Plane 0 */
0x2000,0x6000,0xFE00,0x6000,0x2000,
};
struct Image arrow =
{
0, 0, /* Upper left corner */
7, 5, 1, /* Width, Height, Depth */
arrowData, /* Image data */
0x0001, 0x0000, /* PlanePick, PlaneOnOff */
NULL /* Next image */
};
UWORD chip arrowDatas[] =
{
/* Plane 0 */
0xFE00,0xFE00,0xFE00,0xFE00,0xFE00,
/* Plane 1 */
0xDE00,0x9E00,0x0000,0x9E00,0xDE00,
};
struct Image arrows =
{
0, 0, /* Upper left corner */
7, 5, 2, /* Width, Height, Depth */
arrowDatas, /* Image data */
0x0003, 0x0000, /* PlanePick, PlaneOnOff */
NULL /* Next image */
};
/* boopsi.c */
void MainLoop ( ULONG attr , ULONG value );
void main(int argc, char *argv[])
{
SysBase=*((void **)4L);
if(IntuitionBase=OpenLibrary("intuition.library",37))
{
if(UtilityBase=OpenLibrary("utility.library",37))
{
if(GfxBase=OpenLibrary("graphics.library",37))
{
if(w=OpenWindowTags(NULL,
WA_Flags, WFLG_DEPTHGADGET | WFLG_DRAGBAR |
WFLG_CLOSEGADGET | WFLG_SIZEGADGET,
WA_IDCMP, IDCMP_CLOSEWINDOW | IDCMP_GADGETUP | IDCMP_GADGETDOWN | IDCMP_MOUSEBUTTONS | IDCMP_RAWKEY,
WA_Top, 15,
WA_Left, 150,
WA_Width, 200,
WA_Height, 300,
WA_Activate,TRUE,
WA_PubScreenName, (argc==2?argv[1]:NULL),
TAG_END) )
{
if( drinfo=GetScreenDrawInfo(w->WScreen) )
{
WindowLimits(w, 150, 100, ~0, ~0);
if(buttonCl = initButtonGadgetClass(IntuitionBase, UtilityBase, GfxBase))
{
struct Gadget *tmpgad,*gad;
UWORD i;
tmpgad= (struct Gadget *)&glist;
for(i=0;i<16;i++)
{
NewObject(buttonCl, NULL,
GA_ID, 1L,
GA_Top, w->BorderTop + 2 + i*13,
GA_Left, 20,
GA_Width, 100,
GA_Height, 11,
GA_Immediate, TRUE,
GA_RelVerify, TRUE,
GA_Previous, tmpgad,
BUT_Text, "All",
BUT_Color, (i<8?(i==1?0:1):i%8),
//BUT_Key, 'A',
BUT_BackColor, (i<8?i%8:~0),
TAG_DONE);
}
NewObject(buttonCl, NULL,
GA_ID, 1L,
GA_Top, w->BorderTop + 2 + i*13,
GA_Left, 20,
GA_Width, 150,
GA_Height, 11,
GA_Immediate, TRUE,
GA_RelVerify, TRUE,
GA_Previous, tmpgad,
GA_Disabled, TRUE,
BUT_Text, "Press a Key",
BUT_Key, 'P',
TAG_DONE);
NewObject(buttonCl, NULL,
GA_ID, 1L,
GA_Top, w->BorderTop + 2 + ++i*13,
GA_Left, 20,
GA_Width, 25,
GA_Height, 14,
GA_Immediate, TRUE,
GA_RelVerify, TRUE,
GA_Previous, tmpgad,
BUT_Image, &arrow,
BUT_SelectImage,&arrows,
TAG_DONE);
AddGList(w, glist, -1, -1, NULL);
RefreshGList(glist, w, NULL, -1);
/*SetGadgetAttrs(gad, w, NULL,
GA_Disabled, TRUE,
TAG_DONE);*/
MainLoop(TAG_DONE, 0);
//MainLoop(BUT_Color, 2);
//MainLoop(BUT_Text, (ULONG)"two three");
RemoveGList(w, glist, -1);
gad=glist;
while(gad)
{
tmpgad= gad->NextGadget;
DisposeObject(gad);
gad= tmpgad;
}
freeButtonGadgetClass(buttonCl);
}
FreeScreenDrawInfo(w->WScreen,drinfo);
}
CloseWindow(w);
}
CloseLibrary(GfxBase);
}
CloseLibrary(UtilityBase);
}
CloseLibrary(IntuitionBase);
}
}
void MainLoop(ULONG attr, ULONG value)
{
ULONG done=FALSE;
SetGadgetAttrs(but, w, NULL, attr, value, TAG_DONE);
while(done==FALSE)
{
WaitPort(w->UserPort);
while(msg=(struct IntuiMessage *)GetMsg(w->UserPort))
{
switch( msg->Class )
{
case IDCMP_GADGETDOWN:
kprintf("Gadget down\n");
break;
case IDCMP_GADGETUP:
kprintf("Gadget up\n");
break;
case IDCMP_MOUSEBUTTONS:
kprintf("Mouse buttons\n");
break;
case IDCMP_CLOSEWINDOW:
done=TRUE;
break;
case IDCMP_RAWKEY:
if( msg->Code & IECODE_UP_PREFIX )
{
SetGadgetAttrs(glist, w, NULL,
GA_Selected, FALSE,
TAG_DONE);
}
else if( !(msg->Qualifier & IEQUALIFIER_REPEAT) )
{
SetGadgetAttrs(glist, w, NULL,
GA_Selected, TRUE,
TAG_DONE);
}
break;
}
ReplyMsg(msg);
}
}
}